<?php
/*
Page trait-inscription.php

Permet de valider son inscription.

Quelques indications : (utiliser l'outil de recherche et rechercher les mentions données)

*/
//
session_start();
include('../classes/log.php');
include('../includes/config.php');
include('../classes/PHPMailer/PHPMailerAutoload.php');
require_once('../classes/database.php');


/********Actualisation de la session...**********/

include('../includes/fonctions.php');
$idconnect=Database::getInstance();
actualiser_session($idconnect);

/********Fin actualisation de session...**********/

if(isset($_SESSION['membre_id'])){
    header('Location: '.ROOTPATH.'/site.php');
    exit();
}

if(isset($_SESSION['inscrit']) && $_SESSION['inscrit'] == $_POST['pseudo'] && trim($_POST['pseudo']) != ''){
    $informations = Array(/*Déjà inscrit (en cas de bug...)*/
                        true,
                        'Vous êtes déjà inscrit',
                        'Vous avez déjà complété une inscription avec le pseudo <span class="pseudo">'.htmlspecialchars($_SESSION['inscrit'], ENT_QUOTES).'</span>.',
                        ' - <a href="'.ROOTPATH.'/site.php">Retourner à l\'index</a>',
                        ROOTPATH.'/gestion_compte/connexion.php',
                        5
                        );
    require_once('../informations.php');
    exit();
}

$_SESSION['erreurs'] = 0;

//Pseudo
if(isset($_POST['pseudo'])){
    $pseudo = trim($_POST['pseudo']);
    $pseudo_result = checkpseudo($pseudo,$idconnect);
    if($pseudo_result == 'tooshort'){
        $_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop court, vous devez en choisir un plus long (minimum 3 caractères).</span><br/>';
        $_SESSION['form_pseudo'] = '';
        $_SESSION['erreurs']++;
    }

    else if($pseudo_result == 'toolong'){
        $_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est trop long, vous devez en choisir un plus court (maximum 20 caractères).</span><br/>';
        $_SESSION['form_pseudo'] = '';
        $_SESSION['erreurs']++;
    }

    else if($pseudo_result == 'exists'){
        $_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est déjà pris, choisissez-en un autre.</span><br/>';
        $_SESSION['form_pseudo'] = '';
        $_SESSION['erreurs']++;
    }

    else if($pseudo_result == 'ok'){
        $_SESSION['pseudo_info'] = '';
        $_SESSION['form_pseudo'] = $pseudo;
    }

    else if($pseudo_result == 'empty'){
        $_SESSION['pseudo_info'] = '<span class="erreur">Vous n\'avez pas entré de pseudo.</span><br/>';
        $_SESSION['form_pseudo'] = '';
        $_SESSION['erreurs']++;
    }
}

else{
    header('Location: ../site.php');
    exit();
}

//Nom
if(isset($_POST['nom'])){
    $nom = trim($_POST['nom']);
    $np_result = checknom($nom);
    if($np_result == 'tooshort'){
        $_SESSION['nom_info'] = '<span class="erreur">Le nom '.htmlspecialchars($nom, ENT_QUOTES).' est trop court, vous devez en choisir un plus long (minimum 2 caractères).</span><br/>';
        $_SESSION['form_nom'] = '';
        $_SESSION['erreurs']++;
    }

    else if($np_result == 'toolong'){
        $_SESSION['nom_info'] = '<span class="erreur">Le nom '.htmlspecialchars($nom, ENT_QUOTES).' est trop long, vous devez en choisir un plus court (maximum 30 caractères).</span><br/>';
        $_SESSION['form_nom'] = '';
        $_SESSION['erreurs']++;
    }

    else if($np_result == 'nofigure'){
        $_SESSION['nom_info'] = '<span class="erreur">Votre nom ne doit contenir que des lettres.</span><br/>';
        $_SESSION['form_nom'] = '';
        $_SESSION['erreurs']++;
    }

    else if($np_result == 'ok'){
        $_SESSION['nom_info'] = '';
        $_SESSION['form_nom'] = $nom;
    }

    else if($np_result == 'empty'){
        $_SESSION['nom_info'] = '<span class="erreur">Vous n\'avez pas entré de nom.</span><br/>';
        $_SESSION['form_nom'] = '';
        $_SESSION['erreurs']++;
    }
}
else{
    header('Location: ../site.php');
    exit();
}

//Prénom
if(isset($_POST['prenom'])){
    $prenom = trim($_POST['prenom']);
    $np_result = checknom($prenom);
    if($np_result == 'tooshort'){
        $_SESSION['prenom_info'] = '<span class="erreur">Le prenom '.htmlspecialchars($prenom, ENT_QUOTES).' est trop court, vous devez en choisir un plus long (minimum 2 caractères).</span><br/>';
        $_SESSION['form_prenom'] = '';
        $_SESSION['erreurs']++;
    }

    else if($np_result == 'toolong'){
        $_SESSION['prenom_info'] = '<span class="erreur">Le prenom '.htmlspecialchars($prenom, ENT_QUOTES).' est trop long, vous devez en choisir un plus court (maximum 30 caractères).</span><br/>';
        $_SESSION['form_prenom'] = '';
        $_SESSION['erreurs']++;
    }

    else if($np_result == 'nofigure'){
        $_SESSION['prenom_info'] = '<span class="erreur">Votre prénom ne doit contenir que des lettres.</span><br/>';
        $_SESSION['form_prenom'] = '';
        $_SESSION['erreurs']++;
    }

    else if($np_result == 'ok'){
        $_SESSION['prenom_info'] = '';
        $_SESSION['form_prenom'] = $prenom;
    }

    else if($np_result == 'empty'){
        $_SESSION['prenom_info'] = '<span class="erreur">Vous n\'avez pas entré de prenom.</span><br/>';
        $_SESSION['form_prenom'] = '';
        $_SESSION['erreurs']++;
    }
}
else{
    header('Location: ../site.php');
    exit();
}


//Mot de passe
if(isset($_POST['mdp'])){
    $mdp = trim($_POST['mdp']);
    $mdp_result = checkmdp($mdp, '');
    if($mdp_result == 'tooshort'){
        $_SESSION['mdp_info'] = '<span class="erreur">Le mot de passe entré est trop court, changez-en pour un plus long (minimum 6 caractères).</span><br/>';
        $_SESSION['form_mdp'] = '';
        $_SESSION['erreurs']++;
    }

    else if($mdp_result == 'toolong'){
        $_SESSION['mdp_info'] = '<span class="erreur">Le mot de passe entré est trop long, changez-en pour un plus court. (maximum 10 caractères)</span><br/>';
        $_SESSION['form_mdp'] = '';
        $_SESSION['erreurs']++;
    }

    else if($mdp_result == 'nofigure'){
        $_SESSION['mdp_info'] = '<span class="erreur">Votre mot de passe doit contenir au moins un chiffre.</span><br/>';
        $_SESSION['form_mdp'] = '';
        $_SESSION['erreurs']++;
    }

    else if($mdp_result == 'ok'){
        $_SESSION['mdp_info'] = '';
        $_SESSION['form_mdp'] = $mdp;
    }

    else if($mdp_result == 'empty'){
        $_SESSION['mdp_info'] = '<span class="erreur">Vous n\'avez pas entré de mot de passe.</span><br/>';
        $_SESSION['form_mdp'] = '';
        $_SESSION['erreurs']++;

    }
}

else{
    header('Location: ../site.php');
    exit();
}

//Mot de passe suite
if(isset($_POST['mdp_verif'])){
    $mdp_verif = trim($_POST['mdp_verif']);
    $mdp_verif_result = checkmdpS($mdp_verif, $mdp);
    if($mdp_verif_result == 'different'){
        $_SESSION['mdp_verif_info'] = '<span class="erreur">Le mot de passe de vérification diffère du mot de passe.</span><br/>';
        $_SESSION['form_mdp_verif'] = '';
        $_SESSION['erreurs']++;
        if(isset($_SESSION['form_mdp'])) $_SESSION['form_mdp']='';
    }

    else{
        if($mdp_verif_result == 'ok'){
            $_SESSION['form_mdp_verif'] = $mdp_verif;
            $_SESSION['mdp_verif_info'] = '';
        }

        else{
            $_SESSION['mdp_verif_info'] = str_replace('passe', 'passe de vérification', $_SESSION['mdp_info']);
            $_SESSION['form_mdp_verif'] = '';
            $_SESSION['erreurs']++;
        }
    }
}

else{
    header('Location: ../site.php');
    exit();
}

//mail
if(isset($_POST['mail'])){
    $mail = trim($_POST['mail']);
    $mail_result = checkmail($mail,$idconnect);
    if($mail_result == 'isnt'){
        $_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' n\'est pas valide.</span><br/>';
        $_SESSION['form_mail'] = '';
        $_SESSION['erreurs']++;
    }

    else if($mail_result == 'exists'){
        $_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' est déjà pris, <a href="../contact.php">contactez-nous</a> si vous pensez à une erreur.</span><br/>';
        $_SESSION['form_mail'] = '';
        $_SESSION['erreurs']++;
    }

    else if($mail_result == 'ok'){
        $_SESSION['mail_info'] = '';
        $_SESSION['form_mail'] = $mail;
    }

    else if($mail_result == 'empty'){
        $_SESSION['mail_info'] = '<span class="erreur">Vous n\'avez pas entré de mail.</span><br/>';
        $_SESSION['form_mail'] = '';
        $_SESSION['erreurs']++;
    }
}

else{
    header('Location: ../site.php');
    exit();
}

//mail suite
if(isset($_POST['mail_verif']) && isset($_POST['mail'])){
    $mail_verif = trim($_POST['mail_verif']);
    $mail_verif_result = checkmailS($mail_verif, $mail);
    if($mail_verif_result == 'different'){
        $_SESSION['mail_verif_info'] = '<span class="erreur">Le mail de vérification diffère du mail.</span><br/>';
        $_SESSION['form_mail_verif'] = '';
        $_SESSION['erreurs']++;
    }

    else{
        if($mail_result == 'ok'){
            $_SESSION['mail_verif_info'] = '';
            $_SESSION['form_mail_verif'] = $mail_verif;
        }

        else{
            $_SESSION['mail_verif_info'] = str_replace(' mail', ' mail de vérification', $_SESSION['mail_info']);
            $_SESSION['form_mail_verif'] = '';
            $_SESSION['erreurs']++;
        }
    }
}

else{
    header('Location: ../site.php');
    exit();
}

?>
<?php
/********Entête et titre de page*********/
if($_SESSION['erreurs'] > 0) $titre = 'Erreur : Inscription 2/2';
else $titre = 'Inscription 2/2';

/**********Fin entête et titre***********/
?>

<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8" />
        <link rel="stylesheet" href="<?php echo ROOTPATH; ?>/style.css" />
         <!--[if lt IE 9]>
        <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
        <![endif]-->
        <!--[if lte IE 7]>
        <link rel="stylesheet" href="style_ie.css" />
        <![endif]-->
        <title>Base de données Microcèbes</title>
    </head>

    <body>
		<header>
			<div id="titre_principal">
				<img src="<?php echo ROOTPATH;?>/logo.png" alt="Logo MMDN" id="logo" width="11%"/>
				<h1 id="titre"><?php echo TITRESITE;?></h1>
			</div>
		</header>
		<section id="bandeau">
			<section id="menu">
			<nav>
				<ul>
					<li><a href="<?php echo ROOTPATH;?>/site.php">Accueil</a></li>
					<li><a href="http://www.mmdn.univ-montp2.fr/" target="_blank">MMDN</a></li>
					<li><a href="#">Contact</a></li>
				</ul>
			</nav>
			</section>
			<section id="main">
				<header>
					<h1>Inscription 2/2</h1>
				</header>
				<article>
					<?php
						if($_SESSION['erreurs'] == 0){
							$insertion = "INSERT INTO utilisateur(nom,prenom,statut,login,mdp,email) VALUES('".pg_escape_string($nom)."','".pg_escape_string($prenom)."',' ',
							'".pg_escape_string($pseudo)."','".md5($mdp)."','".pg_escape_string($mail)."')";
								
							 //si l'insertion a fonctionné
							if(pg_query($idconnect,$insertion)){
								$queries++;
								vidersession();
								$_SESSION['inscrit'] = $pseudo;
								/*informe qu'il s'est déjà inscrit s'il actualise, si son navigateur
								bugue avant l'affichage de la page et qu'il recharge la page, etc.*/
								
								
								/* envoye de mail � l'administraeur pour affect� au compte les droit */
								$results_messages = array();
								 
								$mail = new PHPMailer(true);
								$mail->CharSet = 'utf-8';
								 
								class phpmailerAppException extends phpmailerException {}
								 
								try {
								$to = ADMINISTATOR_EMAIL;
								if(!PHPMailer::validateAddress($to)) {
								  throw new phpmailerAppException("Email address " . $to . " is invalid -- aborting!");
								}
								$mail->isSMTP();
								//$mail->SMTPDebug  = 0;
								$mail->Host       = SMTP_HOST;
								$mail->Port       = SMTP_PORT;
								$mail->SMTPSecure = "none";
								$mail->SMTPAuth   = false;
								$mail->addReplyTo(SENDER_EMAIL);
								$mail->From       = SENDER_EMAIL;
								$mail->FromName   = SENDER_NAME;
								$mail->addAddress(ADMINISTATOR_EMAIL, ADMINISTATOR_NAME);
								//$mail->addBCC("tech.abdel@gmail.com");
								//$mail->addCC("tech.abdel@gmail.com");
								$mail->Subject  = "inscription dans la plat forme";
								$body =$_POST['msg'];
								$mail->WordWrap = 80;
								$mail->msgHTML($body, dirname(__FILE__), true); //Create message bodies and embed images
						
								 
								try {
								 $result= $mail->send();
								  $results_messages[] = "Message has been sent using SMTP";
								}
								catch (phpmailerException $e) {
								  throw new phpmailerAppException('Unable to send to: ' . $to. ': '.$e->getMessage());
								}
								}
								catch (phpmailerAppException $e) {
								  $results_messages[] = $e->errorMessage();
								}
								
								
								
								
									
							?>
						<h2>Inscription r�ussite !</h2>
						<p>Nous vous remercions de vous être inscrit sur notre site, votre inscription sera validée par le r�sposanble dans les br�f d�lai!<br/>
						</p>
							<?php
						//	mail('tech.abdel@gmail.com','inscription a la plat forme','bien passer linscription');
							}

							else{ //si l'insertion n'a pas fonctionné
								if(stripos(pg_result_error(), $_SESSION['form_pseudo']) !== FALSE){ // recherche du pseudo
									unset($_SESSION['form_pseudo']);
									$_SESSION['pseudo_info'] = '<span class="erreur">Le pseudo '.htmlspecialchars($pseudo, ENT_QUOTES).' est déjà pris, choisissez-en un autre.</span><br/>';
									$_SESSION['erreurs']++;
								}

								if(stripos(pg_result_error(), $_SESSION['form_mail']) !== FALSE){ //recherche du mail
									unset($_SESSION['form_mail']);
									unset($_SESSION['form_mail_verif']);
									$_SESSION['mail_info'] = '<span class="erreur">Le mail '.htmlspecialchars($mail, ENT_QUOTES).' est déjà pris, <a href="../contact.php">contactez-nous</a> si vous pensez à une erreur.</span><br/>';
									$_SESSION['mail_verif_info'] = str_replace('mail', 'mail de vérification', $_SESSION['mail_info']);
									$_SESSION['erreurs']++;
									$_SESSION['erreurs']++;
								}

								if($_SESSION['erreurs'] == 0){
									$pgbug = true; //plantage SQL.
									$_SESSION['erreurs']++;
								}
							}
						}
						if(isset($_SESSION['erreurs']) && $_SESSION['erreurs']>0){
							if($_SESSION['erreurs'] == 1) $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu 1 erreur.</span><br/>';
							else $_SESSION['nb_erreurs'] = '<span class="erreur">Il y a eu '.$_SESSION['erreurs'].' erreurs.</span><br/>';
						?>
						<h2>Inscription non validée.</h2>
						<p>Vous avez rempli le formulaire d'inscription du site et nous vous en remercions, cependant, nous n'avons
						pas pu valider votre inscription, en voici les raisons :<br/>
						<?php
							echo $_SESSION['nb_erreurs'];
							echo $_SESSION['pseudo_info'];
							echo $_SESSION['mdp_info'];
							echo $_SESSION['mdp_verif_info'];
							echo $_SESSION['mail_info'];
							echo $_SESSION['mail_verif_info'];
							echo $_SESSION['nom_info'];
							echo $_SESSION['prenom_info'];
						

							if(isset($pgbug) && $pgbug!==true){
						?>
						Nous vous proposons donc de revenir à la page précédente pour corriger les erreurs. </p>
						<div class="center"><a href="inscription.php">Retour</a></div>
						<?php
							}
							else{
						?>
						Une erreur est survenue dans la base de données, votre formulaire semble ne pas contenir d'erreurs, donc
						il est possible que le problème vienne de notre côté, réessayez de vous inscrire ou contactez-nous.</p>

						<div class="center"><a href="inscription.php">Retenter une inscription</a> - <a href="../contact.php">Contactez-nous</a></div>
						<?php
							}
						}
						?>
						</div>
					</div>
				</article>
			</section>
		</section>
	</body>
</html>

